﻿using Abp;
using Abp.Application.Services.Dto;
using Mt.Site.Application.Dto;
using Mt.Site.Application.Modules.Dto;
using Mt.Site.Core.Navigations.Modules;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Mt.Site.Application.Modules
{
    public interface IFrontendPageAppService : IBackEndAppService
    {
        Task CreateAsync(CreateFrontendPageDto input);

        Task UpdateAsync(UpdateFrontendPageDto input);

        Task DeleteAsync(EntityDto<Guid> input);

        Task DeleteListAsync(List<Guid> input);

        Task SetStatus(SetStatusInput input);

        Task<List<NameValue>> GetDetailPagesAsync(EntityDto<Guid> input);

        Task CopyNewOneAsync(EntityDto<Guid> input);

        Task<GetFrontendPageForEditOutput> GetForEditAsync(GetFrontendPageForEditInput input);

        Task<PagedResultDto<PagedFrontendPageDto>> GetPagedFrontendPages(PagedFrontendPageInput input);

        Task<List<NameValue>> GetAllModuleDataAsync();

        Task SwapSortNumber(SwapSortNumberInput input);
        Task SetNewSorNumber(NewSortNumberInput input);
    }
}
